In [1]:
%pylab inline
import numpy as np #  convert list to array

import matplotlib.pyplot as plt

#import cmath
Populating the interactive namespace from numpy and matplotlib

Fresnel-formulák

(s and p polarizáció.....)

A törésmutató a beesési oldalon: $n_i$

A törésmutató a transzmittált oldalon: $n_t$

1) TM módus (tranzverzális mágneses), p-polarizált, az $\mathbf{E}$ elektromos tér párhuzamos a beesés síkjával:

\begin{eqnarray} r_{\parallel} &=& r_p = -\frac{n_t \cos \vartheta_i-n_i \cos \vartheta_t} {n_t \cos \vartheta_i+n_i \cos \vartheta_t}, \nonumber \\[1ex] t_{\parallel} &=& t_p = \frac{2n_i \cos \vartheta_i} {n_i \cos \vartheta_t+n_t \cos \vartheta_i} \end{eqnarray}

2) TE módus (tranzverzális elektromos), s-polarizált, az $\mathbf{E}$ elektromos tér merőleges a beesési síkra:

\begin{eqnarray} r_{\bot} &=& r_s = \frac{n_i \cos \vartheta_i-n_t \cos \vartheta_t}{n_i \cos \vartheta_i+n_t \cos \vartheta_t}, \nonumber \\[1ex] t_{\bot} &=& t_s = \frac{2n_i \cos \vartheta_i} {n_i \cos \vartheta_i+n_t \cos \vartheta_t} \end{eqnarray}

Mindkét esetre igaz a Snellius--Descartes-törvény:

$$ n_i \sin\vartheta_i = n_t \sin\vartheta_t $$

Az alábbi kódban nem $\vartheta_t$ -t számoljuk, hanem a képletekben megjelenő $\cos\vartheta_t$ értéket. Ez általában valós, de a teljes visszaverődés $\vartheta_\mathrm{h}=\arcsin\left(\frac{n_t}{n_i}\right)$ határszögénél nagyobb beesési szögre ($\vartheta >\vartheta_\mathrm{h} $ esetén) célszerűbb $\cos \vartheta_t = \sqrt{1-{\left(n_i/n_t \sin \vartheta_i\right)^2}}$ értéket számolni, ami ekkor tisztán imaginárius szám. A kód így mindkét esetben jó.

Intenzítások:

Reflexió: $R = |r|^2$

Transzmisszió: $T = \frac{n_t \cos\vartheta_t}{n_i \cos\vartheta_i}\,|t|^2$

Ekkor igaz: $R+T=1$

Brewster-szög:

Ekkor nincs visszavert TM módus (p-polarizált), azaz $r_{\parallel}=0$

$$ \vartheta_\textrm{B} = \arctan\left(\frac{n_t}{n_i}\right) $$

Teljes visszaverődés szöge:

$$ \alpha_\mathrm{h} = \arcsin\left(\frac{n_t}{n_i}\right), \textrm{ha} \hspace{3mm} n_i > n_t $$

Irodalom:

[1] Grant R. Fowles: Introduction to Modern Optics, Dover Publ. Inc., New York, 2 nd ed. (1989)

[2] M. Ware and J. Peatross: Physics of Light and Optics, Brigham Young University, Department of Physics, 2020 Letölthető itt: https://lehre-svn.emsp.tu-berlin.de/Evicab/astore/07saleru/book/byoptics.pdf

[3] Eugene Hecht: Optics, 5th ed., Pearson, ©2016

[4] Max Born and Emil Wolf: Principles of optics: electromagnetic theory of propagation, interference and diffraction of light. 6th eds., Elsevier, 1980.

[5] Hasznos python csomag, pypolar https://pypolar.readthedocs.io/en/latest/index.html

Code to model and visualize the polarization state of light as it travels through polarizers and birefringent elements. Some ellipsometry support is also included.

Megjegyzések:

A jegyzetben és az alábbiakban a [1,2] könyvek konvencióját követjük az elektromos tér irányát illetően: azaz a TM módusnál a bejövő és a visszavert fény elektromos térnek az $y$ komponense, azaz $E_y$ komponensek ellentétes irányúak. Ezért r_p képlete éppen a -1-szerese annak, ami a [3,4] könyvekben van, itt ez a konvenció éppen fordított, azonos irányúak az $E_y$ komponensek.

Notes from [1]: It should be noted here that some authors choose to define the positve sense for the $\mathbf{E}'$ and $\mathbf{H}'$ vectors of the reflected wave oposite to that shown in the lecture for the TM case. This leads to the awkward situation in which the TE and TM vectors must be defined differently for normal incidence, whereas there is actually no physical difference in this case.

In [2]:
'''
Itt r_p esetén az [1,2] könyvek konvencióját követjük az elektromos tér irányát illetően, 
ezért \delta_p nem az lesz, ami a [3,4] könyvekben van! Ott \pi -\delta_p van abrazolva. 
'''

def ppol(n_i,n_t,theta_i):
    
    # TM módus (tranzverzális mágneses), p-polarizált, 
    # az E elektromos tér párhuzamos a beesés síkjával
    
    #theta_t= arcsin(n_i*sin(theta_i)/n_t)
    
    ## ha a beesesi szog nagyobb a teljes visszaverodes szogenel, 
    ## akkor theta_t= arcsin(n_i*sin(theta_i)/n_t) helyett a cos(theta_t)
    ## szamoljuk direktben alabbi modon (ekkor kell  dtype=complex, 
    ## ugyanis a gyok alatt negativ szam lesz) 
    costheta_t= sqrt(1-(n_i/n_t*sin(theta_i))**2, dtype=complex)
    
    #r=-(n_t*cos(theta_i)-n_i*cos(theta_t))/(n_t*cos(theta_i)+n_i*cos(theta_t))
    #t= 2*n_i*cos(theta_i)/(n_t*cos(theta_i)+n_i*cos(theta_t))
    
    r=-(n_t*cos(theta_i)-n_i*costheta_t)/(n_t*cos(theta_i)+n_i*costheta_t)
    t= 2*n_i*cos(theta_i)/(n_t*cos(theta_i)+n_i*costheta_t)
    
    RR=real(abs(r)**2)
    TT=real((n_t * costheta_t)/(n_i * cos(theta_i)) *abs(t)**2)
    
    #res=array([-(n_t*cos(theta_i)-n_i*costheta_t),(n_t*cos(theta_i)+n_i*costheta_t),r,t,RR,TT])
    res=array([r,t,RR,TT])
    
    return(res)

def spol(n_i,n_t,theta_i):
    
    # TE módus (tranzverzális elektromos), s-polarizált, 
    # az E elektromos tér merőleges a beesési síkra:
    
    #theta_t= arcsin(n_i*sin(theta_i)/n_t)
    
    ## ha a beesesi szog nagyobb a teljes visszaverodes szogenel, 
    ## akkor theta_t= arcsin(n_i*sin(theta_i)/n_t) helyett a cos(theta_t)
    ## szamoljuk direktben alabbi modon (ekkor kell  dtype=complex, 
    ## ugyanis a gyok alatt negativ szam lesz) 
    costheta_t= sqrt(1-(n_i/n_t*sin(theta_i))**2, dtype=complex)
    
    #r=(n_i*cos(theta_i)-n_t*cos(theta_t))/(n_i*cos(theta_i)+n_t*cos(theta_t))
    #t= 2*n_i*cos(theta_i)/(n_i*cos(theta_i)+n_t*cos(theta_t))

    r=(n_i*cos(theta_i)-n_t*costheta_t)/(n_i*cos(theta_i)+n_t*costheta_t)
    t= 2*n_i*cos(theta_i)/(n_i*cos(theta_i)+n_t*costheta_t)
    
    RR=real(abs(r)**2)
    TT=real((n_t * costheta_t)/(n_i * cos(theta_i)) *abs(t)**2)
    
    res=array([r,t,RR,TT])
     
    
    return(res)
In [6]:
values = [16, -25, 36, -49, 64]
xx=sqrt(values, dtype=complex)
xx,abs(xx), abs(xx)**2
Out[6]:
(array([4.+0.j, 0.+5.j, 6.+0.j, 0.+7.j, 8.+0.j]),
 array([4., 5., 6., 7., 8.]),
 array([16., 25., 36., 49., 64.]))
In [9]:
zz=array([1+1j,-1+1j,-1-1j,1-1j])
szog=[angle(i)*180/pi for i in zz ]
szog
Out[9]:
[45.0, 135.0, -135.0, -45.0]
In [45]:
ni,nt=(1,3/2)

#print("teljes visszaverődés szöge = ",arcsin(nt/ni)*180/pi)

szogB=arctan(nt/ni)
#szogC= arcsin(nt/ni)

print("Brewster-szög =",round(szogB*180/pi,2))
#print("Teljes viszaverődés szöge =",round(szogC*180/pi,2))


theta_i= [pi/10,pi/3]
res=[ppol(ni,nt,szog)[0] for szog in theta_i]
res, res[1]

[res[i] for i in range(2)], [angle(res[i])*180/pi for i in range(2)]
Brewster-szög = 56.31
Out[45]:
([(-0.1862828005259882+0j), (0.04244923464074498-0j)], [180.0, -0.0])
In [10]:
'''
Itt r_p esetén az [1,2] könyvek konvencióját követjük az elektromos tér irányát illetően, 
ezért \delta_p nem az lesz, ami a [3,4] könyvekben van! Ott \pi -\delta_p van abrazolva. 
'''

#ni,nt=(3/2,4/3)
ni,nt=(1,3/2)

thetamax=arcsin(ni/nt)
thetamax=pi/2

szogB=arctan(nt/ni)

print("Brewster-szog =",szogB*180/pi)

theta= linspace(0,thetamax*180/pi,100)
res_ppol = ppol(ni,nt,theta*pi/180)
res_spol = spol(ni,nt,theta*pi/180)

figsize(8,6)  

suptitle(r'$n_i=$'+str(ni)+',  '+r'$n_t = $'+str(nt),fontsize=15)
subplot(1,1,1)

plot(theta,real(res_ppol[0]), 'b-', label=r'$r_\parallel = r_p$, TM')
plot(theta,real(res_spol[0]), 'r-', label=r'$r_\perp = r_s$, TE')

xlim(0,90)
title("p-polarizált, r, t")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')

legend(loc='best',fontsize = 15)

xlim(0,90)
title("r, TE és TM módusok")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
legend(loc='best',fontsize = 15)
grid();
Brewster-szog = 56.309932474020215
In [11]:
#ni,nt=(3/2,4/3)
ni,nt=(1,3/2)

#thetamax=arcsin(ni/nt)
thetamax=pi/2

szogB=arctan(nt/ni)

print("Brewster-szog =",round(szogB*180/pi,2),"  green dashed line")

theta= linspace(0,thetamax*180/pi,100)

## az eredmenyek valosak, ha n_i < n_t
res_ppol = real(ppol(ni,nt,theta*pi/180))
res_spol = real(spol(ni,nt,theta*pi/180))

figsize(12,10)  

suptitle(r'$n_i=$'+str(ni)+',  '+r'$n_t = $'+str(nt),fontsize=15)

subplot(2,2,1)

plot(theta,res_ppol[0], 'b-', label=r'$r_\parallel = r_p$')
plot(theta,real(res_ppol[1]), 'r-', label=r'$t_\parallel = t_p$')
xlim(0,90)
title("TM, p-polarizált, r, t")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')

legend(loc='best',fontsize = 15)
grid()

subplot(2,2,2)


plot(theta,res_spol[0], 'b-', label=r'$r_\bot= r_s$')
plot(theta,res_spol[1], 'r-', label=r'$t_\bot = t_s$')
xlim(0,90)
title("TE, s-polarizált, r, t")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')

legend(loc='best',fontsize = 15)
grid()

subplot(2,2,3)

plot(theta,res_ppol[2], 'b-', label=r'$R_\parallel$')
plot(theta,res_ppol[3], 'r-', label=r'$T_\parallel$')
plot(theta,res_ppol[2]+res_ppol[3],'g--',label=r'$R_\parallel+T_\parallel=1$')
xlim(0,90)
title("p-polarizált, R, T")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')

legend(loc='best',fontsize = 15)
grid()

subplot(2,2,4)

plot(theta,res_spol[2], 'b-', label=r'$R_\bot$')
plot(theta,res_spol[3], 'r-', label=r'$T_\bot$')
plot(theta,res_spol[2]+res_spol[3], 'g--',label=r'$R_\bot+T_\bot=1$')
xlim(0,90)
title("s-polarizált, R, T")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')

legend(loc='best',fontsize = 15)
grid();
Brewster-szog = 56.31   green dashed line
In [21]:
'''
Itt r_p esetén az [1,2] könyvek konvencióját követjük az elektromos tér irányát illetően, 
ezért \delta_p nem az lesz, ami a [3,4] könyvekben van! Ott \pi -\delta_p van abrazolva. 
'''

#ni,nt=(3/2,4/3)
ni,nt=(1,3/2)
#ni,nt=(3/2,1)


#thetamax=arcsin(ni/nt)
thetamax=pi/2

szogB=arctan(nt/ni)
#szogC= arcsin(nt/ni)

print("Brewster-szög =",round(szogB*180/pi,2)," green vertical dashed line")
#print("Teljes viszaverődés szöge =",round(szogC*180/pi,2)," black vertical dashed line")


theta= linspace(0,thetamax*180/pi,100)
res_ppol = ppol(ni,nt,theta*pi/180)
res_spol = spol(ni,nt,theta*pi/180)

figsize(12,10)  

suptitle('Visszaverődés sűrűbb közegről  (external reflection) \n $n_i=$'+str(ni)+',  '+r'$n_t = $'+str(nt),fontsize=15)

subplot(2,2,1)
plot(theta,real(res_ppol[0]), 'b-', label=r'$r_\parallel = r_p$')

legend(loc='best',fontsize = 15)
#title("TM, p-polarizált, r")
xlim(0,90)
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
#axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')
grid()

subplot(2,2,2)
plot(theta,angle(res_ppol[0]), 'r-', label=r'$\delta_\parallel = \delta_p$')

legend(loc='best',fontsize = 15)
xlim(0,90)
#title("TM, p-polarizált, r, t")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
#axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')
grid()

subplot(2,2,3)
plot(theta,real(res_spol[0]), 'b-', label=r'$r_\perp = r_s$')

legend(loc='best',fontsize = 15)
#title("TM, p-polarizált, r")
xlim(0,90)
#axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
#axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')
grid()

subplot(2,2,4)
plot(theta,angle(res_spol[0]), 'r-', label=r'$\delta_\perp = \delta_s$')

legend(loc='best',fontsize = 15)
xlim(0,90)
#title("TM, p-polarizált, r, t")
#axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
#axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')

grid();
Brewster-szög = 56.31  green vertical dashed line
In [13]:
sqrt(-9+1j,dtype=complex)
Out[13]:
(0.16641084420406116+3.004611883266907j)
In [14]:
'''
Itt r_p esetén az [1,2] könyvek konvencióját követjük az elektromos tér irányát illetően, 
ezért \delta_p nem az lesz, ami a [3,4] könyvekben van! Ott \pi -\delta_p van abrazolva. 
'''

#ni,nt=(3/2,4/3)
#ni,nt=(1,3/2)
ni,nt=(3/2,1)


#thetamax=arcsin(ni/nt)
thetamax=pi/2

szogB=arctan(nt/ni)
szogC= arcsin(nt/ni)

print("Brewster-szög =",round(szogB*180/pi,2)," green vertical dashed line")
print("Teljes viszaverődés szöge =",round(szogC*180/pi,2)," black vertical dashed line")


theta= linspace(0,thetamax*180/pi,100)
res_ppol = ppol(ni,nt,theta*pi/180)
res_spol = spol(ni,nt,theta*pi/180)

figsize(12,10)  

suptitle('Visszaverődés ritkább közegről  (internal reflection) \n $n_i=$'+str(ni)+',  '+r'$n_t = $'+str(nt),fontsize=15)

subplot(2,2,1)
plot(theta,abs(res_ppol[0]), 'b-', label=r'$|r_\parallel| = |r_p|$')

legend(loc='best',fontsize = 15)
#title("TM, p-polarizált, r")
xlim(0,90)
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')
axhline(y=0,linewidth=1, color='k',ls='--')
grid()

subplot(2,2,2)
plot(theta,angle(res_ppol[0]), 'r-', label=r'$\delta_\parallel = \delta_p$')

legend(loc='best',fontsize = 15)
xlim(0,90)
#title("TM, p-polarizált, r, t")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')

axhline(y=0,linewidth=1, color='k',ls='--')
grid()

subplot(2,2,3)
plot(theta,abs(res_spol[0]), 'b-', label=r'$|r_\perp| = |r_s|$')

legend(loc='best',fontsize = 15)
#title("TM, p-polarizált, r")
xlim(0,90)
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')

axhline(y=0,linewidth=1, color='k',ls='--')
grid()

subplot(2,2,4)
plot(theta,angle(res_spol[0]), 'r-', label=r'$\delta_\perp = \delta_s$')

legend(loc='best',fontsize = 15)
xlim(0,90)
#title("TM, p-polarizált, r, t")
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--')

axhline(y=0,linewidth=1, color='k',ls='--')


grid();
Brewster-szög = 33.69  green vertical dashed line
Teljes viszaverődés szöge = 41.81  black vertical dashed line

Teljes visszaverődés

$|r_\parallel| = 1,\quad |r_\perp| = 1$

$r_\parallel = e^{i\delta_\parallel}, \quad r_\perp = e^{i\delta_\perp}$

See:

In [20]:
'''
Hogy az ábrák ismerősek legyenek, itt a [3,4] könyvek konvencióját követjük az elektromos tér irányát illetően, 
most \pi -\delta_p van abrazolva, ahol delta_p az [1,2] könyvekben, illetve a fenti 
ppol() függvényben és a jegyzetben definiált r_p fázisa!  
'''

def delta_sp(n1,n2,theta):
    
    n=n2/n1
    tmp = sqrt((sin(theta))**2 - n**2, dtype=complex)
    dp= 2*arctan(tmp/(n**2)/cos(theta))
    ds= 2*arctan(tmp/cos(theta))
    
    return(dp,ds,dp-ds)

A Fresnel rhomb

Teljes visszeverődésnél a visszavert sugár p és s polariziáció szögének különbsége:

$\Delta = \delta_\parallel - \delta_\perp$

Adott $n = n_t/n_i < 1$ és $\vartheta_i$ beesési szög esetén $\Delta$-ra igaz (lásd [1,2,3]):

$\tan\frac{\Delta}{2} = \frac{\cos \vartheta_i \sqrt{\sin^2\vartheta_i - n^2}}{\sin^2\vartheta_i}.$

Adott $\Delta$ esetén a fenti egyenlet megoldása a $\vartheta_i$ szög(ek)re (saját számolás):

$\sin \vartheta_{12} = \cos \frac{\Delta}{2}\, \sqrt{\frac{n^2+1 \pm \sqrt{{\left(n^2 -1\right)}^2-4 n^2 \tan^2\frac{\Delta}{2}}}{2}}.$

Az alábbiakban numerikusan számoljuk ezt a két $\vartheta_{12}$ beesési szöget, amelyekre a p és s polarizációjú visszavert fény fázisának a különbsége $\Delta = 45^\circ$.

Itt van egy példa, a két szög: https://en.wikipedia.org/wiki/Total_internal_reflection

és egyzik az alábbi eredményemmel.

In [16]:
def root_Fresnel_rhomb_szog(n_i,n_t,Delta):
    n=n_t/n_i
    n2 = n*n
    tmp = sqrt((n2-1)**2-4*n2*(tan(Delta/2))**2)
    x1=cos(Delta/2)*sqrt(n2+1-tmp)/sqrt(2)
    x2=cos(Delta/2)*sqrt(n2+1+tmp)/sqrt(2)
    
    return (array([arcsin(x1),arcsin(x2)]))

A két szög :

https://en.wikipedia.org/wiki/Total_internal_reflection

When the refractive index of 1.5 is enough (by a slim margin) to give a 45° phase difference at two angles of incidence: about 50.2° and 53.3°.

In [17]:
root_Fresnel_rhomb_szog(1.5,1,pi/4)*180/pi
Out[17]:
array([50.22944976, 53.25822912])

Born and Wolf könyvben (a fenti [3]-as hivatkozásban) a 74. oldalon (pdf)

{48.6244, 54.6231}

In [18]:
root_Fresnel_rhomb_szog(1.51,1,pi/4)*180/pi
Out[18]:
array([48.62435916, 54.62310544])
In [19]:
'''
Hogy az ábrák ismerősek legyenek, itt a [3,4] könyvek konvencióját követjük az elektromos tér irányát illetően, 
most \pi -\delta_p van abrazolva, ahol delta_p az [1,2] könyvekben, illetve a fenti 
ppol() függvényben  és a jegyzetben definiált r_p fázisa!  
'''

ni,nt=(1.51,1)
#ni,nt=(1.515,1)

#thetamax=arcsin(ni/nt)
thetamax=pi/2

szogB = arctan(nt/ni)
szogC = arcsin(nt/ni)

print("Brewster-szög =",round(szogB*180/pi,2)," green vertical dashed line")
print("Teljes viszaverődés szöge =",round(szogC*180/pi,2)," black vertical dashed line")

theta= linspace(0,90,500)
tmp = delta_sp(ni,nt,theta*pi/180)

figsize(12,12)  

suptitle(r'$n_i=$'+str(ni)+',  '+r'$n_t = $'+str(nt),fontsize=15)
subplot(2,1,1)

plot(theta,real(tmp[0]*180/pi), 'b-', label=r'$\delta_\parallel $')
plot(theta,real(tmp[1]*180/pi), 'r-', label=r'$\delta_\perp $')
#plot(theta,tmp[2]*180/pi, 'k-', label=r'$\delta_\parallel-\delta_\perp$')

title(r'$\delta_\parallel= \delta_p$  és  $\delta_\perp = \delta_s$',fontsize = 15)


#annotate(r'$45^\mathrm{o}$',xy=(20, 45), xytext=(15, 45+1),fontsize = 15)

legend(loc='best',fontsize = 15)

#axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--')
axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--',lw=1)
axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--',lw=1)

axhline(y=45,linewidth=1, color='k',ls='--')

xlim(0,90)
ylim(bottom=-5)
#xlim(45,55)
#ylim(30,55)

grid();

subplot(2,1,2)

#plot(theta,real(tmp[0]*180/pi), 'b-', label=r'$\delta_\parallel = \delta_p$')
#plot(theta,real(tmp[1]*180/pi), 'r-', label=r'$\delta_\perp = \delta_s$')
plot(theta,real(tmp[2]*180/pi), 'b-', label=r'$\delta_\parallel-\delta_\perp$')

title(r'$\Delta = \delta_\parallel - \delta_\perp$',fontsize = 15)

legend(loc='best',fontsize = 15)

axvline(x=szogB*180/pi,linewidth=1, color='g',ls='--',lw=1)
axvline(x=szogC*180/pi,linewidth=1, color='k',ls='--',lw=1)

axhline(y=45,linewidth=1, color='k',ls='--')
annotate(r'$45^\mathrm{o}$',xy=(20, 45), xytext=(15, 45+1),fontsize = 15)


xlim(0,90)
ylim(bottom=-5)
#xlim(45,55)
#ylim(30,55)

grid();
Brewster-szög = 33.51  green vertical dashed line
Teljes viszaverődés szöge = 41.47  black vertical dashed line
In [ ]: